#include <ESP32Servo.h>
#include "WiFiConfig/WiFiConfig.h"
const int servoPin = 2; // 使用GPIO2（SuperMini可用引脚）
Servo myservo;

// 创建WiFiConfig实例
WiFiConfig wifiConfig;
void setup()
{
  Serial.begin(115200);

  // 尝试连接已保存的WiFi
  wifiConfig.connectToWiFi();
  // 开启配网模式
  wifiConfig.startConfigPortal();
  // 实现舵机控制回调
  wifiConfig.setAngleCallback([](int angle)
                              { setServoAngle(angle); });

  pinMode(servoPin, OUTPUT);
  ESP32PWM::allocateTimer(0);          // 分配硬件定时器
  myservo.setPeriodHertz(50);          // 50Hz标准舵机频率
  myservo.attach(servoPin, 500, 2500); // 设置脉冲范围
}

void loop()
{
  wifiConfig.handleClient();
}

void setServoAngle(int angle)
{

  Serial.println("执行舵机控制请求");
  angle = constrain(angle, 0, 180);
  myservo.write(angle);
}

#include "WiFiConfig/WiFiConfig.cpp"
